package com.example.demo.controller;

import com.example.demo.dao.ClasssDao;
import com.example.demo.dao.StuJpaDao;
import com.example.demo.entity.Classs;
import com.example.demo.entity.Student;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.List;

//@RestController  使用这个注解会直接返回login,不会跳转到网页
@Controller //使用这个注解会找对应的文件夹下面有没有对应的网页
public class ThymeleafController {
    @Resource
    ClasssDao ssss;//引入班级数据库操作类
    @Resource//自动实例化注解
    StuJpaDao stuJpaDao  ;//学生数据库操作类
    //显示一个班级信息
    @GetMapping("/toLoginPage")//访问路径
    public String toLoginPage(Model ab,int id) {
        Classs bb = ssss.findById(id).get();//查找id为前端转过来的值的班级信息
        ab.addAttribute("aaa",bb.getName());//把查出来的班级名称放到索引aaa里
        ab.addAttribute("bbb",bb);//把查出来的班级实体放到索引bbb
        return "login";//返回一个网页的名称，同时保证templates目录下要有对应的名称.html
    }


    //显示所有学生
    //RequestParam设置参数默认值
    @GetMapping("/toLoginPage1")//访问路径
    public String toLoginPage1(Model ab,
                               @RequestParam(defaultValue = "") String name,
                               @RequestParam(defaultValue = "0") int age) {
        List<Student> list;
        if(age ==0){
            list = stuJpaDao.findByNameContaining(name);//根据学生姓名查询
        }else {
            list = stuJpaDao.findByNameContainingAndAge(name,age);//根据学生姓名和年龄查询
        }
        ab.addAttribute("aaa",list);//把查出来的学生列表放到索引aaa里
         ab.addAttribute("bbb",name);//把查出来的学生列表放到索引aaa里
        return "stu";//返回一个网页的名称，同时保证templates目录下要有对应的名称.html
    }

    //显示一个班级信息
    @GetMapping("/vue")//访问路径
    public String vue() {
        return "vue";//返回一个网页的名称，同时保证templates目录下要有对应的名称.html
    }
}
